package com.yootoo.extpmml;

import ml.dmlc.xgboost4j.java.Booster;
import ml.dmlc.xgboost4j.java.DMatrix;
import ml.dmlc.xgboost4j.java.XGBoost;

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;

public class FinRiskModelV8B {
    public static void main(String[] args) throws Exception {
        // header
        String s1 = "user_id,task_id,searched_org_cnt,call_duration_detail_6m_forenoon_uniq_num_cnt,nuisance_call_dialed_cnt_3m,peer_loc_cnt_item_6m,call_duration_detail_6m_afternoon_uniq_num_cnt,peer_num_cnt_item_1m,net_used_item_6m,net_used_item_3m,call_duration_detail_3m_forenoon_uniq_num_cnt,age,nuisance_call_time_6m,peer_loc_cnt_item_1m,nuisance_call_dialed_time_6m,sms_cnt_item_6m,sms_cnt_item_3m,call_duration_detail_3m_evening_dialed_time,night_time_item_3m,sms_cnt_item_1m,net_used_item_1m,max_single_time_item_3m,call_duration_detail_3m_evening_uniq_num_cnt,max_single_time_item_1m,max_single_time_item_6m,nuisance_call_cnt_3m,peer_loc_cnt_item_3m,inter_peer_num_6m,call_duration_detail_3m_morning_dialed_time,peer_num_cnt_item_6m,contacts_class2_blacklist_cnt,call_duration_detail_3m_afternoon_dialed_cnt,nuisance_call_dialed_time_3m,call_duration_detail_6m_morning_dialed_time,call_duration_detail_3m_evening_dialed_cnt,total_fee_item_1m,call_duration_detail_3m_morning_total_time,nuisance_call_time_3m,call_duration_detail_3m_afternoon_uniq_num_cnt,peer_num_cnt_item_3m,no_dial_day_item_6m,call_duration_detail_3m_evening_dial_time,night_time_item_6m,nuisance_call_cnt_6m,call_duration_detail_6m_forenoon_dialed_cnt,total_fee_item_6m,call_duration_detail_3m_forenoon_dialed_cnt,call_duration_detail_3m_evening_total_cnt,call_duration_detail_3m_noon_dial_time,call_duration_detail_3m_evening_total_time,call_duration_detail_6m_noon_uniq_num_cnt,credit_card_call_time_6m,peer_loc_cnt_avg_item_6m,no_dial_day_item_1m,call_duration_detail_3m_noon_dialed_cnt,recharge_amount_item_6m,sms_fee_item_6m,call_duration_detail_3m_dusk_dialed_time,nuisance_call_time_1m,call_duration_detail_3m_morning_dial_time,no_dial_day_item_3m,call_duration_detail_3m_afternoon_dialed_time,contacts_class1_cnt,call_duration_detail_6m_afternoon_dialed_time,contacts_router_cnt,call_duration_detail_6m_dusk_dial_time,nuisance_call_cnt_1m,call_duration_detail_6m_afternoon_dialed_cnt,call_duration_detail_3m_afternoon_dial_time,call_duration_detail_6m_evening_dial_time,call_duration_detail_6m_morning_uniq_num_cnt,call_duration_detail_3m_noon_dialed_time,no_call_day_item_6m,call_duration_detail_6m_evening_uniq_num_cnt,nuisance_call_dialed_cnt_6m,call_duration_detail_6m_evening_dialed_time,call_duration_detail_6m_noon_dial_cnt,phone_gray_score,net_fee_item_6m,call_duration_detail_6m_noon_total_time,vas_fee_item_6m,call_duration_detail_3m_daybreak_total_time,call_time_item_1m,dial_time_item_1m,call_cnt_item_1m,call_duration_detail_3m_noon_uniq_num_cnt,total_fee_item_3m,call_duration_detail_6m_noon_dial_time,call_duration_detail_3m_noon_total_cnt,call_duration_detail_3m_evening_dial_cnt,loan_call_time_3m,voice_fee_item_6m,call_duration_detail_3m_dusk_total_time,call_duration_detail_3m_dusk_uniq_num_cnt,express_call_dialed_time_6m,express_call_time_6m,power_off_day_item_6m,call_duration_detail_6m_noon_dialed_cnt,recharge_amount_item_3m,call_duration_detail_3m_noon_total_time,call_duration_detail_6m_daybreak_dialed_time,call_duration_detail_3m_morning_uniq_num_cnt,call_duration_detail_6m_dusk_dialed_time,loan_call_dialed_time_3m,night_time_item_1m,call_duration_detail_6m_afternoon_dial_time,sms_fee_item_3m,call_duration_detail_3m_afternoon_total_cnt,bank_call_time_6m,call_duration_detail_3m_forenoon_dialed_time,dial_cnt_item_1m,agency_call_time_6m,vas_fee_item_3m,call_duration_detail_6m_forenoon_dial_cnt,nuisance_call_dialed_cnt_1m,call_duration_detail_3m_daybreak_dial_time,call_duration_detail_6m_evening_total_time,net_used_avg_item_6m,call_duration_detail_6m_dusk_dialed_cnt,call_duration_detail_6m_daybreak_dial_time,call_duration_detail_3m_dusk_dial_time,call_duration_detail_6m_morning_dial_time,call_cnt_item_3m,max_power_on_day_item_3m,call_duration_detail_3m_daybreak_dialed_time,call_duration_detail_6m_morning_dial_cnt,call_duration_detail_6m_morning_total_time,cnt_1min_within_item_1m,remote_time_item_6m,loan_call_time_6m,call_duration_detail_6m_morning_total_cnt,express_call_dialed_time_3m,dial_time_item_3m,ins_fin_call_dialed_time_6m,call_cnt_item_6m,good_friend_num_6m,call_duration_detail_3m_forenoon_dial_time,call_duration_detail_3m_afternoon_dial_cnt,loan_call_dialed_time_1m,sms_fee_item_1m,call_duration_detail_3m_morning_total_cnt,call_duration_detail_6m_evening_dialed_cnt,max_single_recharge_item_6m,credit_card_call_dialed_time_6m,call_duration_detail_6m_evening_total_cnt,call_duration_detail_6m_midnight_dialed_time,call_duration_detail_3m_forenoon_dial_cnt,inter_peer_num_3m,max_power_on_day_item_6m,voice_fee_item_3m,extra_fee_item_6m,call_duration_detail_6m_noon_dialed_time,agency_call_dialed_time_6m,call_duration_detail_3m_dusk_dialed_cnt,loan_call_dialed_time_6m,loan_call_time_1m,recharge_amount_item_1m,cnt_1min_5min_item_6m,nuisance_call_dial_time_6m,call_duration_detail_6m_forenoon_dialed_time,nuisance_call_dialed_time_1m,call_duration_detail_6m_midnight_total_time,express_call_dial_time_6m,call_duration_detail_3m_morning_dialed_cnt,call_duration_detail_6m_forenoon_dial_time,peer_num_cnt_avg_item_3m,call_duration_detail_3m_noon_dial_cnt,call_duration_detail_6m_morning_dialed_cnt,night_cnt_item_6m,call_duration_detail_6m_midnight_dial_time,bank_call_dialed_time_6m,cnt_5min_10min_item_3m,credit_card_call_dial_time_6m,call_duration_detail_6m_daybreak_total_time,max_single_recharge_item_1m,call_duration_detail_3m_midnight_dialed_time,call_duration_detail_3m_dusk_dial_cnt,max_single_recharge_item_3m,cnt_1min_within_item_3m,credit_card_call_time_1m,ins_fin_call_time_6m,call_duration_detail_6m_dusk_total_time,call_duration_detail_6m_dusk_uniq_num_cnt,dial_time_item_6m,local_cnt_item_1m,call_duration_detail_6m_afternoon_total_time,call_duration_detail_6m_dusk_total_cnt,night_cnt_item_3m,bank_call_dialed_time_1m,express_call_time_3m,call_duration_detail_3m_midnight_total_time,ins_fin_call_dialed_time_3m,bank_call_time_1m,cnt_1min_5min_item_1m,carrier_call_time_6m,remote_cnt_item_6m,net_fee_item_3m,loan_call_dial_time_6m,agency_call_dialed_time_3m,net_used_avg_item_3m,call_duration_detail_6m_forenoon_total_cnt,night_cnt_item_1m,call_duration_detail_6m_afternoon_dial_cnt,voice_fee_item_1m,cnt_5min_10min_item_6m,cnt_1min_5min_item_3m,call_duration_detail_6m_evening_dial_cnt,remote_time_item_3m,contacts_router_ratio,cnt_10min_over_item_3m,local_time_item_6m,call_duration_detail_6m_daybreak_uniq_num_cnt,vas_fee_item_1m,loan_call_dialed_cnt_6m,bank_call_dial_time_6m,bank_call_dial_time_3m,loan_call_dialed_cnt_3m,dial_cnt_item_6m,extra_fee_item_3m,bank_call_time_3m,express_call_cnt_6m,call_duration_detail_3m_daybreak_dialed_cnt,call_duration_detail_3m_forenoon_total_cnt,good_friend_num_3m,call_duration_detail_6m_afternoon_total_cnt,dial_cnt_item_3m,local_cnt_item_6m,call_duration_detail_3m_morning_dial_cnt,carrier_call_dialed_time_3m,carrier_call_dialed_time_6m,cnt_10min_over_item_6m,power_off_day_item_1m,local_time_item_3m,call_duration_detail_3m_dusk_total_cnt,credit_card_call_dialed_time_3m,sms_fee_avg_item_3m,credit_card_call_dial_time_1m,agency_call_cnt_6m,ins_fin_call_time_3m,no_call_day_item_3m,call_duration_detail_6m_dusk_dial_cnt,call_duration_detail_3m_afternoon_total_time,call_duration_detail_3m_daybreak_total_cnt,remote_time_item_1m,peer_loc_cnt_avg_item_3m,call_duration_detail_3m_midnight_dial_time,daytime_time_item_1m,ins_fin_call_dialed_time_1m,sms_cnt_avg_item_3m,agency_call_time_3m,peer_num_cnt_avg_item_6m,call_time_item_3m,cnt_5min_10min_item_1m,total_fee_avg_item_3m,local_cnt_item_3m,nuisance_call_dial_time_3m,call_time_item_6m,power_off_day_item_3m,bank_call_cnt_6m,express_call_dialed_cnt_6m,call_duration_detail_6m_daybreak_dial_cnt,express_call_dialed_cnt_3m,express_call_time_1m,call_duration_detail_6m_midnight_uniq_num_cnt,sms_cnt_avg_item_6m,call_duration_detail_3m_forenoon_total_time,express_call_dial_time_3m,call_duration_detail_3m_midnight_total_cnt,call_duration_detail_6m_noon_total_cnt,recharge_amount_avg_item_3m,call_duration_detail_3m_daybreak_uniq_num_cnt,bank_call_dial_time_1m,cnt_1min_within_item_6m,credit_card_call_time_3m,credit_card_call_dialed_cnt_6m,min_single_time_item_1m,nuisance_avg_call_time_6m,credit_card_call_dial_time_3m,no_dial_day_avg_item_3m,call_duration_detail_6m_midnight_dialed_cnt,remote_cnt_item_3m,car_firm_call_dial_time_6m,power_off_day_avg_item_6m,call_duration_detail_6m_forenoon_total_time,call_duration_detail_6m_daybreak_dialed_cnt,nuisance_call_dial_cnt_6m,car_firm_call_time_6m,bank_call_dialed_cnt_6m,credit_card_call_cnt_6m,carrier_call_time_3m,call_duration_detail_6m_daybreak_total_cnt,express_call_cnt_3m,express_call_dialed_time_1m,call_duration_detail_3m_daybreak_dial_cnt,cnt_10min_over_item_1m,night_time_avg_item_6m,sms_fee_avg_item_6m,recharge_amount_avg_item_6m,extra_fee_item_1m,credit_card_call_dialed_time_1m,loan_call_dial_time_3m,loan_call_cnt_1m,ins_fin_call_cnt_6m,ins_fin_call_time_1m,loan_avg_call_time_6m,call_duration_detail_6m_midnight_total_cnt,credit_card_call_dialed_cnt_3m,bank_call_dial_cnt_6m,bank_call_cnt_1m,max_power_on_day_item_1m,110_call_time_6m,bank_call_dialed_cnt_1m,nuisance_avg_call_dialed_time_6m,loan_call_cnt_3m,bank_call_dialed_time_3m,vas_fee_avg_item_6m,night_time_avg_item_3m,loan_call_cnt_6m,credit_card_call_dial_cnt_6m,agency_call_time_1m,call_duration_detail_3m_midnight_dial_cnt,agency_call_dialed_time_1m,express_call_dial_cnt_6m,credit_card_avg_call_time_6m,daytime_cnt_item_1m,call_duration_detail_6m_midnight_dial_cnt,no_call_day_item_1m,bank_avg_call_time_6m,local_time_item_1m,dial_cnt_avg_item_6m,ins_fin_call_cnt_3m,call_duration_detail_3m_midnight_dialed_cnt,call_duration_detail_3m_midnight_uniq_num_cnt,nuisance_call_dial_time_1m,ins_fin_call_dialed_cnt_6m,bank_call_dialed_cnt_3m,ins_fin_avg_call_dialed_time_6m,carrier_call_cnt_6m,loan_call_dial_time_1m,nuisance_call_dial_cnt_3m,credit_card_call_cnt_3m,credit_card_call_dial_cnt_3m,nuisance_avg_call_dialed_time_3m,railway_airway_call_time_6m,loan_avg_call_dialed_time_3m,voice_fee_avg_item_6m,remote_cnt_item_1m,night_cnt_avg_item_3m,ins_fin_call_dial_time_6m,daytime_time_item_3m,continue_recharge_month_cnt_item_6m,credit_card_call_cnt_1m,bank_call_cnt_3m,nuisance_avg_call_time_3m,carrier_call_time_1m,loan_call_dialed_cnt_1m,loan_avg_call_dialed_time_6m,loan_call_dial_cnt_6m,car_firm_call_dialed_time_6m,local_cnt_avg_item_6m,express_call_dial_time_1m,express_avg_call_dialed_time_6m,remote_time_avg_item_6m,daytime_cnt_item_6m,net_fee_avg_item_6m,nuisance_avg_call_dialed_cnt_3m,express_call_dialed_cnt_1m,call_time_avg_item_6m,remote_time_avg_item_3m,ins_fin_avg_call_time_6m,min_single_time_item_6m,no_call_day_avg_item_6m,friend_num_6m,bank_avg_call_dial_time_6m,bank_avg_call_dial_time_3m,special_service_call_time_6m,express_call_dial_cnt_3m,agency_avg_call_time_6m,call_cnt_avg_item_3m,agency_call_dial_time_6m,agency_call_cnt_3m,bank_avg_call_time_3m,nuisance_call_dial_cnt_1m,loan_call_dial_cnt_3m,call_cnt_avg_item_6m,vas_fee_avg_item_3m,express_call_cnt_1m,express_avg_call_dialed_time_3m,agency_call_dialed_cnt_6m,car_firm_call_time_3m,agency_call_dial_cnt_6m,bank_call_dial_cnt_1m,carrier_call_dial_time_6m,power_off_day_avg_item_3m,agency_call_dialed_cnt_3m,agency_avg_call_time_3m,express_avg_call_time_3m,express_avg_call_time_6m,net_fee_item_1m,cnt_5min_10min_avg_item_6m,agency_avg_call_dialed_time_6m,bank_avg_call_dialed_time_3m,total_fee_avg_item_6m,voice_fee_avg_item_3m,credit_card_avg_call_dialed_time_6m,car_firm_call_dialed_time_3m,120_call_time_6m,ins_fin_call_dialed_cnt_3m,loan_avg_call_dial_time_3m,local_cnt_avg_item_3m,cnt_5min_10min_avg_item_3m,daytime_time_item_6m,nuisance_avg_call_dial_time_6m,loan_avg_call_dial_time_6m,ins_fin_call_cnt_1m,no_dial_day_avg_item_6m,cnt_1min_5min_avg_item_3m,ins_fin_call_dial_time_3m,ins_fin_avg_call_dialed_time_3m,special_service_call_time_3m,agency_avg_call_dial_time_3m,credit_card_call_dialed_cnt_1m,car_firm_call_dial_cnt_6m,nuisance_avg_call_cnt_3m,live_month_cnt_item_6m,gender,credit_card_call_dial_cnt_1m,continue_power_off_cnt_item_6m,carrier_call_dialed_time_1m,extra_fee_avg_item_6m,ins_fin_call_dial_time_1m,bank_avg_call_dialed_time_6m,night_cnt_avg_item_6m,carrier_avg_call_dialed_time_6m,arrearage_risk_6m,credit_card_avg_call_dial_time_3m,cnt_1min_5min_avg_item_6m,dial_time_avg_item_3m,cnt_10min_over_avg_item_6m,car_firm_call_dialed_cnt_6m,ins_fin_call_dial_cnt_6m,no_call_day_avg_item_3m,fraud_call_time_6m,unpaid_month_cnt_item_3m,agency_call_dialed_cnt_1m,ins_fin_avg_call_time_3m,loan_call_dial_cnt_1m,carrier_call_dialed_cnt_3m,cnt_1min_within_avg_item_6m,friend_num_3m,car_firm_call_time_1m,dial_time_avg_item_6m,car_firm_avg_call_dial_time_6m,continue_recharge_month_cnt_item_3m,local_time_avg_item_3m,agency_call_cnt_1m,car_firm_call_cnt_1m,bank_call_dial_cnt_3m,credit_card_avg_call_dial_time_6m,call_time_avg_item_3m,contact_loan_score,call_day_item_1m,carrier_avg_call_time_3m,carrier_avg_call_time_6m,credit_card_avg_call_dialed_time_3m,loan_avg_call_time_3m,carrier_call_dialed_cnt_6m,extra_fee_avg_item_3m,live_month_cnt_item_3m,car_firm_call_dial_time_3m,cnt_1min_within_avg_item_3m,loan_avg_call_cnt_3m,ins_fin_call_dialed_cnt_1m,net_fee_avg_item_3m,remote_cnt_avg_item_3m,fraud_call_dialed_time_6m,continue_recharge_month_cnt_item_1m,cnt_10min_over_avg_item_3m,continue_power_off_cnt_item_3m,contacts_class1_blacklist_cnt,110_call_cnt_3m,car_firm_call_cnt_6m,daytime_cnt_avg_item_6m,carrier_call_cnt_1m,carrier_call_cnt_3m,lawyer_call_dialed_time_6m,express_call_dial_cnt_1m,agency_avg_call_dialed_time_3m,is_city_match_friend_city_center_3m,min_single_time_item_3m,express_avg_call_dial_time_6m,credit_card_avg_call_time_3m,remote_cnt_avg_item_6m,carrier_avg_call_dialed_time_3m,car_firm_call_dial_cnt_3m,agency_call_dial_time_3m,110_call_time_3m,car_firm_call_cnt_3m,credit_card_avg_call_cnt_3m,unpaid_month_cnt_item_6m,special_service_call_time_1m,fraud_call_time_1m,dial_cnt_avg_item_3m,agency_call_dial_time_1m,local_time_avg_item_6m,ins_fin_call_dial_cnt_3m,express_avg_call_dialed_cnt_6m,mobile_silence_3m,status,overdue_days,is_clear" + ",end_column";
        // values
        String s2 = "1498805\td222c870-c49b-11e8-9a55-00163e13ed1b\t8\t137\t2\t63\t169\t28\t666654\t0\t61\t42\t869\t16\t869\t260\t122\t2129\t805\t59\t0\t3364\t25\t3364\t3364\t2\t43\t38\t3822\t175\t7\t87\t28\t6666\t29\t8030\t5478\t28\t88\t85\t97\t2314\t2241\t23\t161\t46231\t67\t51\t1435\t4443\t93\t1523\t10.5\t20\t44\t88990\t170\t3965\t14\t1656\t57\t11233\t175\t25795\t2\t4669\t1\t205\t3925\t4303\t49\t3120\t17\t47\t23\t6645\t45\t71\t0\t13434\t0\t19\t16305\t4212\t108\t43\t25363\t6726\t53\t22\t0\t2261\t6098\t48\t0\t0\t15\t85\t11990\t4555\t41\t29\t9352\t0\t202\t7847\t90\t116\t3056\t9881\t25\t6\t0\t44\t1\t0\t10948\t111109.0\t104\t34\t2133\t5313\t434\t17\t19\t54\t11979\t66\t20638\t1134\t112\t0\t14065\t253\t1001\t15\t2602\t29\t0\t30\t54\t71\t72000\t881\t120\t208\t17\t20\t48\t1273\t0\t6708\t6\t51\t761\t0\t7000\t359\t0\t19616\t14\t393\t0\t34\t4239\t28.33\t9\t58\t45\t185\t1118\t24\t642\t75\t4990\t52\t22\t4990\t264\t0\t253\t14021\t84\t33316\t61\t33642\t150\t16\t0\t0\t52\t0\t0\t30\t8\t127\t0\t373\t0\t0.0\t205\t2\t62\t0\t49\t132\t49\t14359\t0.01\t14\t87709\t3\t0\t8\t1938\t642\t0\t306\t0\t1675\t0\t1\t84\t6\t267\t119\t874\t20\t8\t8\t24\t2\t33927\t73\t881\t30.0\t0\t1\t0\t8\t46\t15158\t1\t11166\t14.33\t0\t16103\t0\t40.67\t0\t29.17\t48286\t7\t8454.0\t362\t0\t108347\t7\t13\t0\t1\t0\t0\t7\t43.33\t12483\t0\t2\t130\t3997.0\t1\t0\t569\t1523\t4\t4\t145\t642\t19.0\t9\t72\t0\t2.5\t23855\t2\t0\t0\t8\t5\t8\t3\t0\t0\t0\t5\t374.0\t28.0\t14832.0\t0\t0\t0\t0\t2\t0\t189\t14\t4\t5\t0\t14\t0\t0\t145\t0\t1033\t0.0\t268.0\t11\t1\t0\t0\t0\t0\t254\t106\t5\t2\t509\t5139\t51.0\t0\t2\t1\t0\t2\t5\t42\t1\t0\t0\t5\t1\t9\t0\t0\t377.0\t47\t5.33\t0\t47481\t2\t0\t6\t9\t8\t0\t127\t3\t0\t145.67\t0\t0\t3440.0\t956\t0.0\t0\t0\t18058.0\t4786.0\t42\t1\t2.83\t175\t323\t214\t0\t0\t1\t144.67\t0\t0\t558\t0\t0\t166.83\t0.0\t0\t0\t1\t0\t0\t0\t0\t2.33\t0\t0\t0\t0\t0\t8.17\t1\t344\t7705.0\t424.0\t147\t0\t0\t0\t0\t120.67\t8.0\t106106\t0\t62\t0\t16.17\t44.0\t0\t0\t0\t0\t0\t0\t0\t6\t男\t0\t0\t8\t0.0\t0\t186\t7.5\t1\t0\t214\t59.83\t4688.0\t4.0\t0\t0\t2.67\t0\t0\t0\t0\t0\t1\t94.83\t85\t0\t5553.0\t0\t2\t11309.0\t0\t0\t1\t107\t16095.0\t2\t28\t3\t1\t294\t0\t1\t0.0\t3\t0\t88.0\t0\t0\t0.0\t24.0\t0\t1\t4.67\t0\t0\t0\t0\t159.33\t1\t1\t0\t0\t0\t是\t1\t0\t508\t21.17\t3\t0\t0\t0\t0\t1\t0\t0\t0\t39.67\t0\t14618.0\t0\t0\t3\trejected\t\t0" + "\tend_column";
        // predict value

        String[] arr1 = s1.split(",");
        String[] arr2 = s2.split("\t");
        System.out.println(arr1.length);
        System.out.println(arr2.length);
        StringBuffer stringBuffer = new StringBuffer();
        for (int i = 0; i < arr1.length; ++i) {
            stringBuffer.append("\"" + arr1[i] + "\":\"" + arr2[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        Map<String, Object> naiveFeatures = new HashMap<>();
        for (int i = 0; i < arr1.length; ++i) {
            naiveFeatures.put(arr1[i], arr2[i]);
        }

        // start
        String[] featureNameArr = getFeatureNames();

        HashMap<String, Float> hashMap = getCleanedFeatures(naiveFeatures);
        System.out.println(hashMap.toString());

        System.out.println(Arrays.toString(getFeaturesFromMap(hashMap, featureNameArr)));

        float[] cleanedFeatures = getFeaturesFromMap(hashMap, featureNameArr);

        stringBuffer = new StringBuffer();
        for (int i = 0; i < cleanedFeatures.length; ++i) {
            stringBuffer.append("\"" + featureNameArr[i] + "\":\"" + cleanedFeatures[i] + "\"").append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println("{" + stringBuffer.toString().replace(",endendedn", "") + "}");
        stringBuffer = new StringBuffer();
        for (int i = 0; i < featureNameArr.length; ++i) {
            stringBuffer.append(featureNameArr[i]).append(",");
        }
        stringBuffer.append("endendedn");
        System.out.println(stringBuffer.toString().replace(",endendedn", ""));

        int colSize = cleanedFeatures.length;
        DMatrix matrix = new DMatrix(cleanedFeatures, 1, colSize, -9999999f);
        Booster boosterModel = XGBoost.loadModel("/Users/yootoo/workspace/osc/extpmml/extpmml/src/test/resources/fin_v8b.model");
        float[] scoreArray = boosterModel.predict(matrix)[0];
        float score = scoreArray[0];
        System.out.println(score);
    }

    public static HashMap<String, Float> getCleanedFeatures(Map<String, Object> naiveFeatures) {
        HashMap<String, Float> hashMap = new HashMap<>(600);

        for (Map.Entry<String, Object> map : naiveFeatures.entrySet()) {
            String key = map.getKey();
            Object object = map.getValue();
            String s = object.toString();

            //
            try {
                float v = Float.parseFloat(s);
                hashMap.put(key, v);
            } catch (Exception e) {
                hashMap.put(key, -1f);
            }

            // arrearage_risk_6m
            if ("arrearage_risk_6m".equals(key)) {
                if (s.contains("月无")) {
                    hashMap.put(key, -1f);
                } else {
                    try {
                        float v = Float.parseFloat(s);
                        hashMap.put(key, v);
                    } catch (Exception e) {
                        hashMap.put(key, -1f);
                    }
                }
            }

            // is_city_match_friend_city_center_3m
            if ("is_city_match_friend_city_center_3m".equals(key)) {
                if (s.equals("否")) {
                    hashMap.put(key, 0f);
                } else if (s.equals("是")) {
                    hashMap.put(key, 1f);
                } else {
                    hashMap.put(key, -1f);
                }
            }

            // gender
            if ("gender".equals(key)) {
                if (s.equals("男")) {
                    hashMap.put(key, 0f);
                } else if (s.equals("女")) {
                    hashMap.put(key, 1f);
                } else {
                    hashMap.put(key, -1f);
                }
            }
        }

        return hashMap;
    }

    public static float[] getFeaturesFromMap(HashMap<String, Float> hashMap, String[] featureNames) {
        float[] bars = new float[featureNames.length];
        for (int i = 0; i < featureNames.length; ++i) {
            bars[i] = hashMap.get(featureNames[i]);
        }
        return bars;
    }

    public static String[] getFeatureNames() {
        String[] arr = new String[]{
                "searched_org_cnt",
                "call_duration_detail_6m_forenoon_uniq_num_cnt",
                "nuisance_call_dialed_cnt_3m",
                "peer_loc_cnt_item_6m",
                "call_duration_detail_6m_afternoon_uniq_num_cnt",
                "peer_num_cnt_item_1m",
                "net_used_item_6m",
                "net_used_item_3m",
                "call_duration_detail_3m_forenoon_uniq_num_cnt",
                "age",
                "nuisance_call_time_6m",
                "peer_loc_cnt_item_1m",
                "nuisance_call_dialed_time_6m",
                "sms_cnt_item_6m",
                "sms_cnt_item_3m",
                "call_duration_detail_3m_evening_dialed_time",
                "night_time_item_3m",
                "sms_cnt_item_1m",
                "net_used_item_1m",
                "max_single_time_item_3m",
                "call_duration_detail_3m_evening_uniq_num_cnt",
                "max_single_time_item_1m",
                "max_single_time_item_6m",
                "nuisance_call_cnt_3m",
                "peer_loc_cnt_item_3m",
                "inter_peer_num_6m",
                "call_duration_detail_3m_morning_dialed_time",
                "peer_num_cnt_item_6m",
                "contacts_class2_blacklist_cnt",
                "call_duration_detail_3m_afternoon_dialed_cnt",
                "nuisance_call_dialed_time_3m",
                "call_duration_detail_6m_morning_dialed_time",
                "call_duration_detail_3m_evening_dialed_cnt",
                "total_fee_item_1m",
                "call_duration_detail_3m_morning_total_time",
                "nuisance_call_time_3m",
                "call_duration_detail_3m_afternoon_uniq_num_cnt",
                "peer_num_cnt_item_3m",
                "no_dial_day_item_6m",
                "call_duration_detail_3m_evening_dial_time",
                "night_time_item_6m",
                "nuisance_call_cnt_6m",
                "call_duration_detail_6m_forenoon_dialed_cnt",
                "total_fee_item_6m",
                "call_duration_detail_3m_forenoon_dialed_cnt",
                "call_duration_detail_3m_evening_total_cnt",
                "call_duration_detail_3m_noon_dial_time",
                "call_duration_detail_3m_evening_total_time",
                "call_duration_detail_6m_noon_uniq_num_cnt",
                "credit_card_call_time_6m",
                "peer_loc_cnt_avg_item_6m",
                "no_dial_day_item_1m",
                "call_duration_detail_3m_noon_dialed_cnt",
                "recharge_amount_item_6m",
                "sms_fee_item_6m",
                "call_duration_detail_3m_dusk_dialed_time",
                "nuisance_call_time_1m",
                "call_duration_detail_3m_morning_dial_time",
                "no_dial_day_item_3m",
                "call_duration_detail_3m_afternoon_dialed_time",
                "contacts_class1_cnt",
                "call_duration_detail_6m_afternoon_dialed_time",
                "contacts_router_cnt",
                "call_duration_detail_6m_dusk_dial_time",
                "nuisance_call_cnt_1m",
                "call_duration_detail_6m_afternoon_dialed_cnt",
                "call_duration_detail_3m_afternoon_dial_time",
                "call_duration_detail_6m_evening_dial_time",
                "call_duration_detail_6m_morning_uniq_num_cnt",
                "call_duration_detail_3m_noon_dialed_time",
                "no_call_day_item_6m",
                "call_duration_detail_6m_evening_uniq_num_cnt",
                "nuisance_call_dialed_cnt_6m",
                "call_duration_detail_6m_evening_dialed_time",
                "call_duration_detail_6m_noon_dial_cnt",
                "phone_gray_score",
                "net_fee_item_6m",
                "call_duration_detail_6m_noon_total_time",
                "vas_fee_item_6m",
                "call_duration_detail_3m_daybreak_total_time",
                "call_time_item_1m",
                "dial_time_item_1m",
                "call_cnt_item_1m",
                "call_duration_detail_3m_noon_uniq_num_cnt",
                "total_fee_item_3m",
                "call_duration_detail_6m_noon_dial_time",
                "call_duration_detail_3m_noon_total_cnt",
                "call_duration_detail_3m_evening_dial_cnt",
                "loan_call_time_3m",
                "voice_fee_item_6m",
                "call_duration_detail_3m_dusk_total_time",
                "call_duration_detail_3m_dusk_uniq_num_cnt",
                "express_call_dialed_time_6m",
                "express_call_time_6m",
                "power_off_day_item_6m",
                "call_duration_detail_6m_noon_dialed_cnt",
                "recharge_amount_item_3m",
                "call_duration_detail_3m_noon_total_time",
                "call_duration_detail_6m_daybreak_dialed_time",
                "call_duration_detail_3m_morning_uniq_num_cnt",
                "call_duration_detail_6m_dusk_dialed_time",
                "loan_call_dialed_time_3m",
                "night_time_item_1m",
                "call_duration_detail_6m_afternoon_dial_time",
                "sms_fee_item_3m",
                "call_duration_detail_3m_afternoon_total_cnt",
                "bank_call_time_6m",
                "call_duration_detail_3m_forenoon_dialed_time",
                "dial_cnt_item_1m",
                "agency_call_time_6m",
                "vas_fee_item_3m",
                "call_duration_detail_6m_forenoon_dial_cnt",
                "nuisance_call_dialed_cnt_1m",
                "call_duration_detail_3m_daybreak_dial_time",
                "call_duration_detail_6m_evening_total_time",
                "net_used_avg_item_6m",
                "call_duration_detail_6m_dusk_dialed_cnt",
                "call_duration_detail_6m_daybreak_dial_time",
                "call_duration_detail_3m_dusk_dial_time",
                "call_duration_detail_6m_morning_dial_time",
                "call_cnt_item_3m",
                "max_power_on_day_item_3m",
                "call_duration_detail_3m_daybreak_dialed_time",
                "call_duration_detail_6m_morning_dial_cnt",
                "call_duration_detail_6m_morning_total_time",
                "cnt_1min_within_item_1m",
                "remote_time_item_6m",
                "loan_call_time_6m",
                "call_duration_detail_6m_morning_total_cnt",
                "express_call_dialed_time_3m",
                "dial_time_item_3m",
                "ins_fin_call_dialed_time_6m",
                "call_cnt_item_6m",
                "good_friend_num_6m",
                "call_duration_detail_3m_forenoon_dial_time",
                "call_duration_detail_3m_afternoon_dial_cnt",
                "loan_call_dialed_time_1m",
                "sms_fee_item_1m",
                "call_duration_detail_3m_morning_total_cnt",
                "call_duration_detail_6m_evening_dialed_cnt",
                "max_single_recharge_item_6m",
                "credit_card_call_dialed_time_6m",
                "call_duration_detail_6m_evening_total_cnt",
                "call_duration_detail_6m_midnight_dialed_time",
                "call_duration_detail_3m_forenoon_dial_cnt",
                "inter_peer_num_3m",
                "max_power_on_day_item_6m",
                "voice_fee_item_3m",
                "extra_fee_item_6m",
                "call_duration_detail_6m_noon_dialed_time",
                "agency_call_dialed_time_6m",
                "call_duration_detail_3m_dusk_dialed_cnt",
                "loan_call_dialed_time_6m",
                "loan_call_time_1m",
                "recharge_amount_item_1m",
                "cnt_1min_5min_item_6m",
                "nuisance_call_dial_time_6m",
                "call_duration_detail_6m_forenoon_dialed_time",
                "nuisance_call_dialed_time_1m",
                "call_duration_detail_6m_midnight_total_time",
                "express_call_dial_time_6m",
                "call_duration_detail_3m_morning_dialed_cnt",
                "call_duration_detail_6m_forenoon_dial_time",
                "peer_num_cnt_avg_item_3m",
                "call_duration_detail_3m_noon_dial_cnt",
                "call_duration_detail_6m_morning_dialed_cnt",
                "night_cnt_item_6m",
                "call_duration_detail_6m_midnight_dial_time",
                "bank_call_dialed_time_6m",
                "cnt_5min_10min_item_3m",
                "credit_card_call_dial_time_6m",
                "call_duration_detail_6m_daybreak_total_time",
                "max_single_recharge_item_1m",
                "call_duration_detail_3m_midnight_dialed_time",
                "call_duration_detail_3m_dusk_dial_cnt",
                "max_single_recharge_item_3m",
                "cnt_1min_within_item_3m",
                "credit_card_call_time_1m",
                "ins_fin_call_time_6m",
                "call_duration_detail_6m_dusk_total_time",
                "call_duration_detail_6m_dusk_uniq_num_cnt",
                "dial_time_item_6m",
                "local_cnt_item_1m",
                "call_duration_detail_6m_afternoon_total_time",
                "call_duration_detail_6m_dusk_total_cnt",
                "night_cnt_item_3m",
                "bank_call_dialed_time_1m",
                "express_call_time_3m",
                "call_duration_detail_3m_midnight_total_time",
                "ins_fin_call_dialed_time_3m",
                "bank_call_time_1m",
                "cnt_1min_5min_item_1m",
                "carrier_call_time_6m",
                "remote_cnt_item_6m",
                "net_fee_item_3m",
                "loan_call_dial_time_6m",
                "agency_call_dialed_time_3m",
                "net_used_avg_item_3m",
                "call_duration_detail_6m_forenoon_total_cnt",
                "night_cnt_item_1m",
                "call_duration_detail_6m_afternoon_dial_cnt",
                "voice_fee_item_1m",
                "cnt_5min_10min_item_6m",
                "cnt_1min_5min_item_3m",
                "call_duration_detail_6m_evening_dial_cnt",
                "remote_time_item_3m",
                "contacts_router_ratio",
                "cnt_10min_over_item_3m",
                "local_time_item_6m",
                "call_duration_detail_6m_daybreak_uniq_num_cnt",
                "vas_fee_item_1m",
                "loan_call_dialed_cnt_6m",
                "bank_call_dial_time_6m",
                "bank_call_dial_time_3m",
                "loan_call_dialed_cnt_3m",
                "dial_cnt_item_6m",
                "extra_fee_item_3m",
                "bank_call_time_3m",
                "express_call_cnt_6m",
                "call_duration_detail_3m_daybreak_dialed_cnt",
                "call_duration_detail_3m_forenoon_total_cnt",
                "good_friend_num_3m",
                "call_duration_detail_6m_afternoon_total_cnt",
                "dial_cnt_item_3m",
                "local_cnt_item_6m",
                "call_duration_detail_3m_morning_dial_cnt",
                "carrier_call_dialed_time_3m",
                "carrier_call_dialed_time_6m",
                "cnt_10min_over_item_6m",
                "power_off_day_item_1m",
                "local_time_item_3m",
                "call_duration_detail_3m_dusk_total_cnt",
                "credit_card_call_dialed_time_3m",
                "sms_fee_avg_item_3m",
                "credit_card_call_dial_time_1m",
                "agency_call_cnt_6m",
                "ins_fin_call_time_3m",
                "no_call_day_item_3m",
                "call_duration_detail_6m_dusk_dial_cnt",
                "call_duration_detail_3m_afternoon_total_time",
                "call_duration_detail_3m_daybreak_total_cnt",
                "remote_time_item_1m",
                "peer_loc_cnt_avg_item_3m",
                "call_duration_detail_3m_midnight_dial_time",
                "daytime_time_item_1m",
                "ins_fin_call_dialed_time_1m",
                "sms_cnt_avg_item_3m",
                "agency_call_time_3m",
                "peer_num_cnt_avg_item_6m",
                "call_time_item_3m",
                "cnt_5min_10min_item_1m",
                "total_fee_avg_item_3m",
                "local_cnt_item_3m",
                "nuisance_call_dial_time_3m",
                "call_time_item_6m",
                "power_off_day_item_3m",
                "bank_call_cnt_6m",
                "express_call_dialed_cnt_6m",
                "call_duration_detail_6m_daybreak_dial_cnt",
                "express_call_dialed_cnt_3m",
                "express_call_time_1m",
                "call_duration_detail_6m_midnight_uniq_num_cnt",
                "sms_cnt_avg_item_6m",
                "call_duration_detail_3m_forenoon_total_time",
                "express_call_dial_time_3m",
                "call_duration_detail_3m_midnight_total_cnt",
                "call_duration_detail_6m_noon_total_cnt",
                "recharge_amount_avg_item_3m",
                "call_duration_detail_3m_daybreak_uniq_num_cnt",
                "bank_call_dial_time_1m",
                "cnt_1min_within_item_6m",
                "credit_card_call_time_3m",
                "credit_card_call_dialed_cnt_6m",
                "min_single_time_item_1m",
                "nuisance_avg_call_time_6m",
                "credit_card_call_dial_time_3m",
                "no_dial_day_avg_item_3m",
                "call_duration_detail_6m_midnight_dialed_cnt",
                "remote_cnt_item_3m",
                "car_firm_call_dial_time_6m",
                "power_off_day_avg_item_6m",
                "call_duration_detail_6m_forenoon_total_time",
                "call_duration_detail_6m_daybreak_dialed_cnt",
                "nuisance_call_dial_cnt_6m",
                "car_firm_call_time_6m",
                "bank_call_dialed_cnt_6m",
                "credit_card_call_cnt_6m",
                "carrier_call_time_3m",
                "call_duration_detail_6m_daybreak_total_cnt",
                "express_call_cnt_3m",
                "express_call_dialed_time_1m",
                "call_duration_detail_3m_daybreak_dial_cnt",
                "cnt_10min_over_item_1m",
                "night_time_avg_item_6m",
                "sms_fee_avg_item_6m",
                "recharge_amount_avg_item_6m",
                "extra_fee_item_1m",
                "credit_card_call_dialed_time_1m",
                "loan_call_dial_time_3m",
                "loan_call_cnt_1m",
                "ins_fin_call_cnt_6m",
                "ins_fin_call_time_1m",
                "loan_avg_call_time_6m",
                "call_duration_detail_6m_midnight_total_cnt",
                "credit_card_call_dialed_cnt_3m",
                "bank_call_dial_cnt_6m",
                "bank_call_cnt_1m",
                "max_power_on_day_item_1m",
                "110_call_time_6m",
                "bank_call_dialed_cnt_1m",
                "nuisance_avg_call_dialed_time_6m",
                "loan_call_cnt_3m",
                "bank_call_dialed_time_3m",
                "vas_fee_avg_item_6m",
                "night_time_avg_item_3m",
                "loan_call_cnt_6m",
                "credit_card_call_dial_cnt_6m",
                "agency_call_time_1m",
                "call_duration_detail_3m_midnight_dial_cnt",
                "agency_call_dialed_time_1m",
                "express_call_dial_cnt_6m",
                "credit_card_avg_call_time_6m",
                "daytime_cnt_item_1m",
                "call_duration_detail_6m_midnight_dial_cnt",
                "no_call_day_item_1m",
                "bank_avg_call_time_6m",
                "local_time_item_1m",
                "dial_cnt_avg_item_6m",
                "ins_fin_call_cnt_3m",
                "call_duration_detail_3m_midnight_dialed_cnt",
                "call_duration_detail_3m_midnight_uniq_num_cnt",
                "nuisance_call_dial_time_1m",
                "ins_fin_call_dialed_cnt_6m",
                "bank_call_dialed_cnt_3m",
                "ins_fin_avg_call_dialed_time_6m",
                "carrier_call_cnt_6m",
                "loan_call_dial_time_1m",
                "nuisance_call_dial_cnt_3m",
                "credit_card_call_cnt_3m",
                "credit_card_call_dial_cnt_3m",
                "nuisance_avg_call_dialed_time_3m",
                "railway_airway_call_time_6m",
                "loan_avg_call_dialed_time_3m",
                "voice_fee_avg_item_6m",
                "remote_cnt_item_1m",
                "night_cnt_avg_item_3m",
                "ins_fin_call_dial_time_6m",
                "daytime_time_item_3m",
                "continue_recharge_month_cnt_item_6m",
                "credit_card_call_cnt_1m",
                "bank_call_cnt_3m",
                "nuisance_avg_call_time_3m",
                "carrier_call_time_1m",
                "loan_call_dialed_cnt_1m",
                "loan_avg_call_dialed_time_6m",
                "loan_call_dial_cnt_6m",
                "car_firm_call_dialed_time_6m",
                "local_cnt_avg_item_6m",
                "express_call_dial_time_1m",
                "express_avg_call_dialed_time_6m",
                "remote_time_avg_item_6m",
                "daytime_cnt_item_6m",
                "net_fee_avg_item_6m",
                "nuisance_avg_call_dialed_cnt_3m",
                "express_call_dialed_cnt_1m",
                "call_time_avg_item_6m",
                "remote_time_avg_item_3m",
                "ins_fin_avg_call_time_6m",
                "min_single_time_item_6m",
                "no_call_day_avg_item_6m",
                "friend_num_6m",
                "bank_avg_call_dial_time_6m",
                "bank_avg_call_dial_time_3m",
                "special_service_call_time_6m",
                "express_call_dial_cnt_3m",
                "agency_avg_call_time_6m",
                "call_cnt_avg_item_3m",
                "agency_call_dial_time_6m",
                "agency_call_cnt_3m",
                "bank_avg_call_time_3m",
                "nuisance_call_dial_cnt_1m",
                "loan_call_dial_cnt_3m",
                "call_cnt_avg_item_6m",
                "vas_fee_avg_item_3m",
                "express_call_cnt_1m",
                "express_avg_call_dialed_time_3m",
                "agency_call_dialed_cnt_6m",
                "car_firm_call_time_3m",
                "agency_call_dial_cnt_6m",
                "bank_call_dial_cnt_1m",
                "carrier_call_dial_time_6m",
                "power_off_day_avg_item_3m",
                "agency_call_dialed_cnt_3m",
                "agency_avg_call_time_3m",
                "express_avg_call_time_3m",
                "express_avg_call_time_6m",
                "net_fee_item_1m",
                "cnt_5min_10min_avg_item_6m",
                "agency_avg_call_dialed_time_6m",
                "bank_avg_call_dialed_time_3m",
                "total_fee_avg_item_6m",
                "voice_fee_avg_item_3m",
                "credit_card_avg_call_dialed_time_6m",
                "car_firm_call_dialed_time_3m",
                "120_call_time_6m",
                "ins_fin_call_dialed_cnt_3m",
                "loan_avg_call_dial_time_3m",
                "local_cnt_avg_item_3m",
                "cnt_5min_10min_avg_item_3m",
                "daytime_time_item_6m",
                "nuisance_avg_call_dial_time_6m",
                "loan_avg_call_dial_time_6m",
                "ins_fin_call_cnt_1m",
                "no_dial_day_avg_item_6m",
                "cnt_1min_5min_avg_item_3m",
                "ins_fin_call_dial_time_3m",
                "ins_fin_avg_call_dialed_time_3m",
                "special_service_call_time_3m",
                "agency_avg_call_dial_time_3m",
                "credit_card_call_dialed_cnt_1m",
                "car_firm_call_dial_cnt_6m",
                "nuisance_avg_call_cnt_3m",
                "live_month_cnt_item_6m",
                "gender",
                "credit_card_call_dial_cnt_1m",
                "continue_power_off_cnt_item_6m",
                "carrier_call_dialed_time_1m",
                "extra_fee_avg_item_6m",
                "ins_fin_call_dial_time_1m",
                "bank_avg_call_dialed_time_6m",
                "night_cnt_avg_item_6m",
                "carrier_avg_call_dialed_time_6m",
                "arrearage_risk_6m",
                "credit_card_avg_call_dial_time_3m",
                "cnt_1min_5min_avg_item_6m",
                "dial_time_avg_item_3m",
                "cnt_10min_over_avg_item_6m",
                "car_firm_call_dialed_cnt_6m",
                "ins_fin_call_dial_cnt_6m",
                "no_call_day_avg_item_3m",
                "fraud_call_time_6m",
                "unpaid_month_cnt_item_3m",
                "agency_call_dialed_cnt_1m",
                "ins_fin_avg_call_time_3m",
                "loan_call_dial_cnt_1m",
                "carrier_call_dialed_cnt_3m",
                "cnt_1min_within_avg_item_6m",
                "friend_num_3m",
                "car_firm_call_time_1m",
                "dial_time_avg_item_6m",
                "car_firm_avg_call_dial_time_6m",
                "continue_recharge_month_cnt_item_3m",
                "local_time_avg_item_3m",
                "agency_call_cnt_1m",
                "car_firm_call_cnt_1m",
                "bank_call_dial_cnt_3m",
                "credit_card_avg_call_dial_time_6m",
                "call_time_avg_item_3m",
                "contact_loan_score",
                "call_day_item_1m",
                "carrier_avg_call_time_3m",
                "carrier_avg_call_time_6m",
                "credit_card_avg_call_dialed_time_3m",
                "loan_avg_call_time_3m",
                "carrier_call_dialed_cnt_6m",
                "extra_fee_avg_item_3m",
                "live_month_cnt_item_3m",
                "car_firm_call_dial_time_3m",
                "cnt_1min_within_avg_item_3m",
                "loan_avg_call_cnt_3m",
                "ins_fin_call_dialed_cnt_1m",
                "net_fee_avg_item_3m",
                "remote_cnt_avg_item_3m",
                "fraud_call_dialed_time_6m",
                "continue_recharge_month_cnt_item_1m",
                "cnt_10min_over_avg_item_3m",
                "continue_power_off_cnt_item_3m",
                "contacts_class1_blacklist_cnt",
                "110_call_cnt_3m",
                "car_firm_call_cnt_6m",
                "daytime_cnt_avg_item_6m",
                "carrier_call_cnt_1m",
                "carrier_call_cnt_3m",
                "lawyer_call_dialed_time_6m",
                "express_call_dial_cnt_1m",
                "agency_avg_call_dialed_time_3m",
                "is_city_match_friend_city_center_3m",
                "min_single_time_item_3m",
                "express_avg_call_dial_time_6m",
                "credit_card_avg_call_time_3m",
                "remote_cnt_avg_item_6m",
                "carrier_avg_call_dialed_time_3m",
                "car_firm_call_dial_cnt_3m",
                "agency_call_dial_time_3m",
                "110_call_time_3m",
                "car_firm_call_cnt_3m",
                "credit_card_avg_call_cnt_3m",
                "unpaid_month_cnt_item_6m",
                "special_service_call_time_1m",
                "fraud_call_time_1m",
                "dial_cnt_avg_item_3m",
                "agency_call_dial_time_1m",
                "local_time_avg_item_6m",
                "ins_fin_call_dial_cnt_3m",
                "express_avg_call_dialed_cnt_6m",
                "mobile_silence_3m"
        };
        return arr;
    }
}
